#include <stdio.h>
#include <string.h>
#include <stdbool.h>

typedef struct number
{
    int sun[10000];
    int len;
    int flag;
}num;


void init(num *a)
{
    memset(a->sun,0,sizeof(a->sun));
    a->len=0;
    a->flag=1;
}

num build(const char *str)
{
    num a;
    init(&a);
    int len=strlen(str);
    a.len=len;
    for(int i=0;i<len;i++)
    {
        if(str[len-1-i]=='-')
        {
            a.flag=-1;
            a.len--;
            break;
        }
        else
        {
            a.sun[i]=str[len-1-i]-'0';
        }

    }
    return a;
}


int cmp(num *a,num *b)
{
    if(a->len>b->len)return 1;
    else if(a->len<b->len)return -1;
    else
    {
        for(int i=a->len-1;i>-1;i--)
        {
            if(a->sun[i]>b->sun[i])return 1;
            else if(a->sun[i]<b->sun[i])return -1;
        }
    }
    return 0;
}

num mul(num *a,num *b)
{
    num res;
    init(&res);
    if(!((a->flag==-1&&b->flag==-1)||(a->flag==1&&b->flag==1)))
    {
        res.flag=-1;
    }
    int len=a->len+b->len;
    res.len=len;
    for(int i=0;i<a->len;i++) {
        for(int j=0;j<b->len;j++)
        {
            res.sun[i+j]+=a->sun[i]*b->sun[j];
            if(res.sun[i+j]>9)
            {
                res.sun[i+j+1]+=res.sun[i+j]/10;
                res.sun[i+j]%=10;
            }
        }
    }
    for(int i=len-1;i>-1;i--)
    {
        if(res.sun[i]==0)
        {
            len--;
        }
        else
        {
            break;
        }
    }
    res.len=len;
    return res;
}





void print(num *a,char *str1,char *str2)
{
    printf("Product : ");
    if(a->flag==-1)
    {
        printf("-");
    }
    for(int i=a->len-1;i>-1;i--)
    {
        printf("%d",a->sun[i]);
    }
}


int main(void) {
    int n=1;
    while(n--)
    {
        char str1[10000];
        char str2[10000];
        scanf("%s%s",str1,str2);
        num a,b;
        a=build(str1);
        b=build(str2);
        num sum;
        init(&sum);
        sum=mul(&a,&b);
        print(&sum,str1,str2);
    }
    return 0;
}
